package com.xl.basic.service;

import com.xl.basic.entity.Result;
import com.xl.basic.entity.SPage;
import com.xl.basic.entity.param.AddRoleParam;
import com.xl.basic.entity.param.QueryRoleParam;
import com.xl.basic.entity.param.UpdRoleParam;
import com.xl.basic.entity.UserInfo;
import com.xl.dao.domain.XlRole;
import lombok.NonNull;

import java.util.List;

/**
 * 角色列表
 *
 * @author 钟勇
 * Create in 2023/8/29 15:36
 */
public interface RoleService {
    /**
     * 新增角色
     *
     * @param param    param
     * @param operator 操作人
     * @return result
     */
    Result<Object> addRole(@NonNull AddRoleParam param, UserInfo operator);

    /**
     * 编辑角色
     *
     * @param param    param
     * @param operator 操作人
     * @return result
     */
    Result<Object> updRole(@NonNull UpdRoleParam param, UserInfo operator);

    /**
     * 删除角色
     *
     * @param roleId   角色ID
     * @param operator 操作人
     * @return result
     */
    Result<Object> delRole(@NonNull Integer roleId, UserInfo operator);


    /**
     * 查询角色
     *
     * @param param param
     * @return list
     */
    Result<List<XlRole>> queryRoleList(@NonNull QueryRoleParam param);

    /**
     * 查询分页
     *
     * @param param param
     * @return list
     */
    Result<List<XlRole>> queryRolePage(@NonNull QueryRoleParam param, SPage sPage);


}
